From 1d2891204c6bf05d5e2eb0e5fa2ee78f6a2b755b Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Wed, 23 Dec 2015 11:47:00 +0100
Subject: [PATCH] Add an option to disable installation of test modules

The Python standard distribution comes with many test modules, that
are not necessarly useful on embedded targets.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
 Makefile.pre.in | 56 ++++++++++++++++++++++++++++++++++++--------------------
 configure.ac    |  6 ++++++
 2 files changed, 42 insertions(+), 20 deletions(-)

diff --git a/Makefile.pre.in b/Makefile.pre.in
index 9420860..d4c771a 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1166,8 +1166,30 @@ maninstall:	altmaninstall
 PLATDIR=	@PLATDIR@
 MACHDEPS=	$(PLATDIR)
 XMLLIBSUBDIRS=  xml xml/dom xml/etree xml/parsers xml/sax
-LIBSUBDIRS=	tkinter tkinter/test tkinter/test/test_tkinter \
-		tkinter/test/test_ttk site-packages test \
+LIBSUBDIRS=	tkinter \
+		site-packages \
+		asyncio \
+		collections concurrent concurrent/futures encodings \
+		email email/mime \
+		ensurepip ensurepip/_bundled \
+		html json http dbm xmlrpc \
+		sqlite3 \
+		logging csv wsgiref urllib \
+		lib2to3 lib2to3/fixes lib2to3/pgen2 \
+		ctypes ctypes/macholib \
+		idlelib idlelib/Icons \
+		distutils distutils/command $(XMLLIBSUBDIRS) \
+		importlib \
+		turtledemo \
+		multiprocessing multiprocessing/dummy \
+		unittest \
+		venv venv/scripts venv/scripts/posix \
+		curses pydoc_data $(MACHDEPS)
+
+TESTSUBDIRS = 	tkinter/test tkinter/test/test_tkinter tkinter/test/test_ttk \
+		test test/test_asyncio \
+		test/test_email test/test_email/data \
+		test/test_json \
 		test/audiodata \
 		test/capath test/data \
 		test/cjkencodings test/decimaltestdata test/xmltestdata \
@@ -1199,28 +1221,22 @@ LIBSUBDIRS=	tkinter tkinter/test tkinter/test/test_tkinter \
 		test/test_importlib/namespace_pkgs/project3/parent/child \
                 test/test_importlib/namespace_pkgs/module_and_namespace_package \
                 test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
-		asyncio \
-		test/test_asyncio \
-		collections concurrent concurrent/futures encodings \
-		email email/mime test/test_email test/test_email/data \
-		ensurepip ensurepip/_bundled \
-		html json test/test_json http dbm xmlrpc \
-		sqlite3 sqlite3/test \
-		logging csv wsgiref urllib \
-		lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
+		sqlite3/test \
+		lib2to3/tests \
 		lib2to3/tests/data lib2to3/tests/data/fixers \
 		lib2to3/tests/data/fixers/myfixes \
-		ctypes ctypes/test ctypes/macholib \
-		idlelib idlelib/Icons idlelib/idle_test \
-		distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
-		importlib test/test_importlib test/test_importlib/builtin \
+		ctypes/test \
+		idlelib/idle_test \
+		distutils/tests \
+		test/test_importlib test/test_importlib/builtin \
 		test/test_importlib/extension test/test_importlib/frozen \
 		test/test_importlib/import_ test/test_importlib/source \
-		turtledemo \
-		multiprocessing multiprocessing/dummy \
-		unittest unittest/test unittest/test/testmock \
-		venv venv/scripts venv/scripts/posix \
-		curses pydoc_data $(MACHDEPS)
+		unittest/test unittest/test/testmock
+
+ifeq (@TEST_MODULES@,yes)
+LIBSUBDIRS += $(TESTSUBDIRS)
+endif
+
 libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
 	@for i in $(SCRIPTDIR) $(LIBDEST); \
 	do \
diff --git a/configure.ac b/configure.ac
index bfb599e..9f3d226 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2895,6 +2895,12 @@ if test "$posix_threads" = "yes"; then
 fi
 
 
+AC_SUBST(TEST_MODULES)
+
+AC_ARG_ENABLE(test-modules,
+	AS_HELP_STRING([--disable-test-modules], [disable test modules]),
+	[ TEST_MODULES="${enableval}" ], [ TEST_MODULES=yes ])
+
 # Check for enable-ipv6
 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
 AC_MSG_CHECKING([if --enable-ipv6 is specified])
-- 
2.6.4

